package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCDemo1 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        /*
        使用JDBC操作数据库的基本流程
        1：加载驱动
        2.通过DriverManager(JDBC提供的)获取数据库连接，创建出连接对象Connection
        3:通过Connection创建用于执行SQL语句的对象Statement
        4：通过Statement向数据库执行SQL语句
        5：如果执行的是DQL语句（查询语句）则会得到查询结果集ResultSet
        6：便利结果集对象获取查询出的数据
        7：与数据库断开连接
         */
        //1.加载驱动
        //不同数据库提供的驱动实现类的报名和类名不同，但是无需记忆，现用现查即可
        Class.forName("com.mysql.cj.jdbc.Driver");//这个是MySQL的
        //2.与数据库链接
        Connection connection = DriverManager.getConnection(
                //格式：jdbc:mysql://主机地址信息/数据库名？一堆参数
                "jdbc:mysql://localhost:3306/tedu?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true",//数据库的地址（格式大致相同，）
                "root",//登录数据库时的用户名
                "root"//数据库的密码
        );
        System.out.println("与数据库建立连接");

        //3创建语句执行对象
        Statement statement = connection.createStatement();
        String sql = "CREATE TABLE userinfo\n" +
                "(\n" +
                "    id INT PRIMARY KEY AUTO_INCREMENT,\n" +
                "    username VARCHAR(32)   ,\n" +
                "    password VARCHAR(32)  ,\n" +
                "    nickname VARCHAR(32) ,\n" +
                "    age         INT(3)\n" +
                ")";
        /*
    boolean execute(String sql)
    用于指定给定的SQL语句。返回值表示执行后是否产生了查询结果集
    如果SQL书写错误，或执行导致数据库错误，这里都会抛出异常

    虽然该方法什么类型的SQL都可以使用，但是因为DML和DQL语句有专门的方法，因此
    该方法通常用于执行DDL语句
 */
        statement.execute(sql);
        System.out.println("创建表成功");

        connection.close();
    }
}
